10章 トークン
10.1 トークンの使用方法
トークン
記号やシンボルの意味、それほど高価でない私的に発行された特定目的のコインのようなもの
所有することができて、資産や通貨やアクセス権を象徴する
トークンは重複する多くの異なる機能を果たすようにプログラミングできる
投票権やアクセス権やリソースの所有権を同時に意味することができる
通貨はトークンの最初の「アプリ」に過ぎない
通貨、リソース、アセット、アクセス、エクイティ、投票、収集品、アイデンティティ、証明、ユーティリティ 1つのトークンにこれらの複数の機能が含まれていることがある
物理的世界では運転免許証(証明書)は身分証明書(ID)でもある
10.2 トークンとファンジビリティ(代替可能性)
経済学において、ファンジビリティとは、財または商品の個々の単位が、本質的に相互に交換可能という特性を意味する
トークンは任意の1単位を、価値または機能を変化させることなく別の1単位に置き換えられればファンジブルである
ノンファンジブルトークンはそれぞれが有形または無形の項目を表すトークンで互換性はない
特定のゴッホの絵画の所有権を表すトークンは、同じ「アート所有権トークン」システムの一部であってもピカソを表すトークンと同等ではない
取引の相手方がその義務を果たさないというリスク
資産を表すデジタルトークンの世界では、トークンによって表象される資産を誰が保有しているのか、その裏付けとなる資産に適用される規則が何かを理解する事が重要
DEATH NOTE でノートと人質を交換するシーンを思い出した june29.icon
https://gyazo.com/8bab950152e36b3bde148917038515f0
10.4 トークンと内在性
内在的
内から、ラテン語の「intra」
デジタル資産はコンセンサスルールによって管理される
CryptoKittyの鍵を持っている場合は、そのCryptoKittyを直接保有していることになる
秘密鍵を所有していることは仲介者を伴うことなく、資産を所有していることと同じ意味を持つ
内在性資産を表すトークンは、追加のカウンターパーティリスクがない
外在的
不動産、企業の議決権のある株式、商標、金の延べ棒
ブロックチェーンの中に存在しないこれらのアイテムの所有権はトークンを管理するコンセンサスルールとは別に法律、慣習、政策によって管理される
トークン発行者と所有者はスマートコントラクトの外の現実世界に依存しているということ
追加的なカウンターパーティリスクを伴う
ブロックチェーンベースのトークンを用いることの重要な効果
外在性資産を内在性資産に変換、カウンターパーティリスクを取り除くことができる
良い例
企業の株式(外在性)からDAOや類似の(内在性)組織における株式、投票トークンへの移行 10.5 トークンの使用:ユーティリティとエクイティ
ユーティリティトークン
サービスやアプリケーションのリソースにアクセスするために用いられるトークン
共有ストレージなどのリソースを表すトークン
ソーシャルメディアネットワークなどのサービスへのアクセスを表すトークン
エクイティトークン
スタートアップなどを支配または所有する持分を表すトークン
配当や利益を分配するための議決権のない株式として、機能が制限されたものにできる
プラットフォームの管理をトークン所有者の投票に基づいた複雑なガバナンスシステムを通じて行われるDAOの議決権付き株式として機能が拡張されたものにもできる
10.5.1 「それはアヒルです」
多くのスタートアップはエクイティトークンをユーティリティトークンに見せかけることで規制上の制約を回避
見せかけの株式売出によって、規制が回避できるかまだわからない
「もしそれがアヒルのように歩き、アヒルのように鳴けば、それはアヒル」なのです。
規制当局がこれらの誤魔化しのような行為を見逃すことはまずありません
法の迂回を潜脱行為とみなす可能性が高くなる
10.5.2 ユーティリティトークン:誰が必要とするのか
重大なリスクとサービスやプロダクトの導入の障壁をもたらす
イノベーションは慣習から遠ざかり歩む人が最も少ない道を進むことを意味する
アーリーアダプターに新しい技術を採用するように求めないといけない
スタートアップのアイデアと言うだけでリスクが高いところにユーティリティトークンを追加すると以下のリスクを加えることになる。スタートアップにとって大きなリスクになる
基盤プラットフォーム(イーサリアム)
広範な経済(取引所、流動性)
規制環境(株式/商品の規制当局)
テクノロジー(スマートコントラクト、トークン標準)
革新的なビジネスが暗号通貨領域で行われている
規制当局が迅速に法律を制定し、新しいビジネスモデルをサポートしないと起業家たちは暗号通貨ビジネスにより優しい他の法域で事業展開を目指すことになる
トークンの価値が減少するのは
流動性が限られていること
使用範囲が限られていること
交換コストが高いこと
資金を早く集めることができるというだけの理由でユーティリティトークンを導入しないで
10.6 イーサリアム上のトークン
最初のブロックチェーン通貨のビットコインはトークンそのもの
イーサリアムに最初のトークンの標準が導入されたことで、トークンが爆発的に増加
ヴィタリック・ブテリンは最も明白で有用な応用の一つとして、トークンを挙げていた
トークンはイーサとは異なります
イーサリアムプロトコルはトークンについて何も知らない
イーサリアムアカウントのトークン残高はスマートコントラクトレベルで処理される
新しいトークンを作成するには新しいスマートコントラクトを作成する必要がある
既存の標準に従うのがおそらく最も賢い方法だよ
10.6.1 ERC20 トークン標準
最初の標準は2015年ファビアン・フォゲルシュテラーによってERC(Ethereum Request for Commetns)として導入された
自動的にGitHubのissue番号20が割り当てられた
大部分のトークンはこのERC20だよ
ファンジブルトークンの標準
totalSupplyとかbalanceOfなど必要な関数とイベントを提供しないといけない
ERC20のワークフロー
transfer関数を使う
ウォレットが他のウォレットに送金するために使う
アリスが10トークンをボブに送る
アリスのウォレットがトークンコントラクトのアドレスにトランザクションを送る
ボブのアドレスと10を引数としてtransfer関数を呼び出せばよい
トークンコントラクトはアリスの残高を-10して、ボブの残高を+10に調整し、Transferイベントを発行
approve関数に続いてtransferFrom関数を使用する
トークン配布用のコントラクトに制御を委任するために最もよく使われる。取引所でも使用できる
ICOのクラウドセール
図10-1を参照
ERC20の実装
2つの実装がある。ConsensysとOpenZeppelin
10.6.2 独自ERC20トークンの起動
Truffleフレームワークを使用する
詳細については付録Dの「D.1.1 Truffle」を参照下さい
私達のトークンを記号「MET」で「Mastering Ethereum Token」と呼びます
truffle init する
npm install @openzeppelin/contracts 今(2020/3/21現在)のバージョンは2.5.0
METoken.solを作成
function METoken() public { の書き方はdeprecated だ!
ERC223
ERC777
ERC721 ノンファンジブルトークン標準
10.7 トークン標準の使用
トークン標準と目的
実装上最低限満たすべき仕様
関数を実装して、自由に機能を追加することができる
標準の主要な目的はコントラクト間の相互運用性を促進すること
標準は規範的というよりは記述的であることを意図している
どのように実装するかはあなた次第
NIH症候群 (自前主義)
Not Invented HereのNIH
成熟度によるセキュリティ
OpenZepplinの実装を使用するのは、この実装がセキュリティを重視しているから
十分にテストされ、広く使用されている実装を利用するほうが安全
10.8 トークンインターフェイス標準への拡張
多くのプロジェクトでは、アプリケーションに必要な主要な拡張実装を作成している
所有者管理・バーニング・ミンティング・クラウドファンディング・・・などなど
10.9 トークンとICO
トークンはイーサリアムエコシステムの爆発的な発展につながりました
今日イーサリアムで提供されているトークンの多くはうまく見せかけた詐欺、ピラミッドスキーム、資産の搾取
10.10 まとめ
トークンはイーサリアムの非常に強力な概念である
12章でトークンを再度取り上げます
hr.icon
次章!